Skip to main content
Version: 2.4

ConfigType

ConfigType is a business-friendly packaging catalog that lets you organize tSM configuration into clear, navigable sections (for example: Ordering, Ordering.SDWAN, Ticketing.CustomerTicket, Integrations.SAP). It helps teams quickly find what belongs together, understand who owns it, and scope admin operations (filtering, auditing, backup/restore selections, studio navigation) to a specific area.

ConfigType is intended to group any mix of configuration assets—forms, processes, registers, listings, notifications, widgets, scripts, and other configuration types—under a single “package-like” node.

See also:


Why it matters

  • Organization & discoverability — quickly find all assets for a domain/product area.
  • Scoped operations — filter, audit, compare, export/restore only what belongs to a given area.
  • Lifecycle control — validity windows and tags can help manage configuration over time.
  • Clear ownership — make responsibility explicit at the package level (team ownership, stewards, approvals).

How ConfigType is used by configuration entities

All configuration entities in tSM contain a property:

  • configType (String) — holds the ConfigType code.

This makes ConfigType the common “routing key” for:

  • UI navigation (grouping and filtering)
  • audit views (“who owns what”)
  • packaging scope (“what belongs to this area”)

Hierarchical codes

ConfigType code is hierarchical by design.

Rule

A child ConfigType code MUST include the full code of all its parents as a prefix.

  • A parent–child relationship is valid only if: child.code = parent.code + "." + <segment> (or the configured delimiter), and the child explicitly references that parent (see parent field below).

Examples

  • cap.ordering

    • cap.ordering.catalog

    • cap.ordering.forms

    • cap.ordering.processes

    • cap.ordering.sdwan

      • cap.ordering.sdwan.catalog
      • cap.ordering.sdwan.forms
      • cap.ordering.sdwan.processes

This rule ensures that:

  • the hierarchy is readable from the code itself,
  • filtering by prefix is reliable (everything under cap.ordering.* is “Ordering”).

Typical uses

  • Separate configuration areas by business domain or product line (e.g., cap.ticketing.*, cap.ordering.*, cap.ordering.sdwan.*).
  • Power admin tooling selections (e.g., “restore only cap.ordering.* and cap.ticketing.*”).
  • Navigate large installations in tSM Studio and admin UI by a stable taxonomy.

Reference

ConfigType (attributes)

FieldTypeRequiredRead-onlyDescription / Notes
idUUIDIdentifier (not intended for end-user display).
codeStringYesUnique ASCII code (no spaces). Used in references, filters, and tooling. Must be hierarchical (includes parent codes).
nameStringYesHuman-readable name shown in admin UI.
descriptionStringLonger help text / tool-tip.
parentStringOptional hierarchical parent ConfigType.code. Used to build trees.
validityFrom/ToDateActive window for this config group.
validBoolYesComputed from validity; not stored.
syncMethodEnumYesDeclares how configs under this type are deployed between environments (see below).
ownerUserGroupsListYesOwner group(s) responsible for configuration under this ConfigType (code of UserGroup).
configMapFree-form metadata for admin tooling; keep it lightweight.
dataTagsListLabels for dashboards/filters (e.g., core, pilot, external).
localizationDataObjectTranslations for name / description.
auditInfoObjectStandard audit metadata.

syncMethod semantics

  • MANUAL — default; admins export/import explicitly.
  • NONE — environments diverge intentionally; no cross-env sync.
  • COMPARE — changes originate in test/UAT; deployment uses diff & apply workflows.
  • SYSTEM — platform-critical configs; typically updated with application releases.

End-to-end example: Ordering vs SD-WAN-specific configuration

This example shows how to keep generic Ordering assets under Ordering packages, while placing SD-WAN-specific assets into a dedicated sub-package under Ordering.

ConfigType tree (packages)

CodeNameParentOwner teamPurpose
cap.orderingOrderingOrdering TeamRoot for ordering capability configuration.
cap.ordering.catalogOrdering / Catalogcap.orderingOrdering TeamShared catalog patterns, generic offerings/templates.
cap.ordering.formsOrdering / Formscap.orderingOrdering TeamGeneric ordering forms and reusable fragments.
cap.ordering.processesOrdering / Processescap.orderingOrdering TeamGeneric order lifecycle processes (validation, submission, cancellation).
cap.ordering.sdwanOrdering / SD-WANcap.orderingSD-WAN Solution TeamSD-WAN-specific ordering configuration.
cap.ordering.sdwan.catalogOrdering / SD-WAN / Catalogcap.ordering.sdwanSD-WAN Solution TeamSD-WAN product catalog records and SD-WAN-specific attributes.
cap.ordering.sdwan.formsOrdering / SD-WAN / Formscap.ordering.sdwanSD-WAN Solution TeamSD-WAN-specific order capture wizards/forms.
cap.ordering.sdwan.processesOrdering / SD-WAN / Processescap.ordering.sdwanSD-WAN Solution TeamSD-WAN-specific orchestration steps in ordering processes.

How configuration entities are assigned

All relevant entities store configType as the code of the owning package:

Entity typeExample itemconfigTypeNotes
Catalog record“Generic Broadband Offer Template”cap.ordering.catalogReused across products.
Form“Generic Order Header”cap.ordering.formsBase order form used widely.
Process“Order Submit (Generic)”cap.ordering.processesShared ordering lifecycle.
Catalog record“SD-WAN Offer”cap.ordering.sdwan.catalogSD-WAN-specific commercial and technical attributes.
Form / wizard“SD-WAN Site Setup Wizard”cap.ordering.sdwan.formsSD-WAN-specific fields, validations, and UI steps.
Process“SD-WAN Provisioning Orchestration”cap.ordering.sdwan.processesProduct-specific flow pieces integrated into ordering.
Script / rule“SD-WAN Eligibility Check”cap.ordering.sdwan.processes (or cap.ordering.sdwan)Kept with the domain where it is primarily maintained.
Register“SD-WAN Device Models”cap.ordering.sdwan.catalogProduct-specific reference data for catalog and ordering.

This structure keeps:

  • Ordering fundamentals centralized under cap.ordering.*
  • SD-WAN specifics isolated under cap.ordering.sdwan.*, with clear ownership and a clean navigation scope

Renaming and stability

ConfigType codes are used in references, filters, and tooling; changing them can break references and selections. Because all configuration entities store the owning package code in their configType property, renaming a ConfigType can have a large impact across all configuration that belongs to it (and all descendants, if renamed). The system will attempt to re-link affected configuration items, but renames should be performed very carefully, with full awareness of the scope of impacted assets.


Elasticsearch representation

To support fast cross-entity navigation, search, quick preview, impact analysis, and package-aware administration, tSM maintains an Elasticsearch read model for configuration items grouped by ConfigType.

This index is designed as a generic projection across configuration entity types. It is populated asynchronously from entity Kafka topics. At runtime, tSM resolves the current list of entity types and their associated topics, listens for changes, and updates the shared Elasticsearch index without requiring a hardcoded list of supported configuration entities at development time.

Purpose of the Elasticsearch index

The Elasticsearch projection is the preferred source for:

  • searching configuration items under a ConfigType subtree
  • quickly listing all items belonging to a ConfigType
  • grouping results by entity type or microservice
  • showing quick item previews without loading every source API separately
  • evaluating impact before package/export/restore operations
  • surfacing package installation and drift signals together with the current configuration item

The Elasticsearch projection is a read model only. The authoritative source of configuration remains the owning microservice and its underlying database.

Common information indexed for each configuration item

Each indexed configuration item stores a common set of fields independent of the original entity type.

FieldTypeDescription
entityIdStringStable identifier of the configuration item.
entityTypeStringSource entity type (for example Form, Process, Register, NotificationRule).
entityCodeStringHuman-friendly code of the item, if available.
nameStringHuman-friendly name of the item, if available.
descriptionStringDescription of the item, if available.
configTypeStringOwning ConfigType code of the item.
configTypePathListFull ConfigType ancestry used for subtree search and filtering.
microserviceStringOwning microservice of the item.
validityFrom/ToDateValidity window of the item, when available.
dataTagsListSearchable labels/tags on the item.
whoInsertedStringAudit signal from the source entity.
whenInsertedDateAudit signal from the source entity.
whoEditedStringAudit signal from the source entity.
whenEditedDateLast edit timestamp from the source entity.
lastUpdatedDateTimestamp when the Elasticsearch projection was last refreshed.
customObjectOptional extended data for entity-specific search and UI use.

ConfigType-aware search and filtering

Because the index stores both configType and configTypePath, users can:

  • search for items in one exact ConfigType
  • search all items under a ConfigType subtree
  • aggregate results by entity type, owner microservice, or tags
  • combine ConfigType filtering with free-text search and package signals

This is especially important in large installations where a single functional area can contain many different entity types spread across several microservices.

Relationship to source entities

The Elasticsearch document is intentionally normalized and lightweight:

  • it contains enough information for search, filtering, and quick view
  • it may embed selected item-specific attributes in custom
  • it does not replace the full source entity representation

When detailed editing or authoritative comparison is required, the user continues to work with the owning API or configuration screen of the original entity.


Installed Package signals in Elasticsearch

ConfigType-based administration is often used together with package operations. For this reason, the Elasticsearch projection can also expose selected information derived from Installed Package tracking.

See also: Installed Package

The goal is to let users answer questions such as:

  • Which package most recently installed this item?
  • Was this item modified after installation?
  • Is the current item drifted compared to what the package installed?
  • Which ConfigType subtree contains changed or missing package-managed items?
FieldTypeDescription
latestInstalledPackage.packageIdStringIdentifier of the most recent package that installed the item.
latestInstalledPackage.packageNameStringDisplay name captured from the latest installation record.
latestInstalledPackage.versionStringLatest installed package version for this item.
latestInstalledPackage.installedAtDateTimeTimestamp of the latest installation affecting the item.
latestInstalledPackage.installedByStringUser/service that performed the latest installation.
latestInstalledPackage.installSourceEnumOrigin of the latest installation, if tracked.
packageStatus.compareStatusEnumCurrent drift evaluation for the item (UNCHANGED, CHANGED, MISSING, UNKNOWN).
packageStatus.modifiedAfterInstallBoolFast timestamp-based signal that the item was modified after its latest installation.
packageStatus.sourceModifiedAtDateTimeSource timestamp captured at install time, if available.
packageStatus.currentModifiedAtDateTimeCurrent observed modification timestamp of the item.
packageHistoryListOptional compact history of package versions that contained the item.

Why package data is projected into the ConfigType index

Adding Installed Package signals to the same ConfigType-centric search index makes it possible to:

  • locate all changed package-managed items under a ConfigType subtree
  • identify which ConfigType areas were affected by a package installation
  • quickly inspect whether a configuration item is still aligned with the package that installed it
  • support package-aware filtering, export, validation, and impact analysis without loading package and configuration data separately

Typical examples

Examples of useful searches supported by the index:

  • all items under cap.ordering.* changed after their latest package installation
  • all Form items in cap.ordering.sdwan.* installed by package SDWAN
  • all items with compareStatus = CHANGED grouped by ConfigType and entity type
  • all package-managed items belonging to a selected capability before export or restore

See also